package org.thraex.excel.vo;

import lombok.Data;

/**
 * @Author 鬼王
 * @Date 2019/08/12 10:19
 */
@Data
public class DetailVO {

    private String userId;
    private String userName;
    private String month;

    /** 导出excel新增 所级单位 */
    private String deptName;

    /** 导出excel新增 备注，统计缺勤类型及天数 */
    private String remark;

    /** 统计考勤类型天数 */
    private Integer countLY;
    private Integer countYB;
    private Integer countCJ;
    private Integer countHJ;
    private Integer countCQ;
    private Integer countBJ;
    private Integer countSANGJ;
    private Integer countT;
    private Integer countBX;
    private Integer countJB;
    private Integer countTQJ;
    private Integer countDXXJ;
    private Integer countWJ;
    private Integer countGX;
    private Integer countKGJ;
    private Integer countGSJ;
    private Integer countCC;
    private Integer countSJ;


    /** 导出excel新增 员工编号 */
    private String empNo;

    /** 用工类型 */
    private String empType;

    /** 天数对应的考勤状态 */
    private String day1;
    private String day2;
    private String day3;
    private String day4;
    private String day5;
    private String day6;
    private String day7;
    private String day8;
    private String day9;
    private String day10;
    private String day11;
    private String day12;
    private String day13;
    private String day14;
    private String day15;
    private String day16;
    private String day17;
    private String day18;
    private String day19;
    private String day20;
    private String day21;
    private String day22;
    private String day23;
    private String day24;
    private String day25;
    private String day26;
    private String day27;
    private String day28;
    private String day29;
    private String day30;
    private String day31;

    public DetailVO() { }

//    @Override
//    public String toString() {
//        return super.toString();
//    }

    public DetailVO(String userId, String userName, String month, String deptName, String remark, Integer countLY, Integer countYB, Integer countCJ, Integer countHJ, Integer countCQ, Integer countBJ, Integer countSANGJ, Integer countT, Integer countBX, Integer countJB, Integer countTQJ, Integer countDXXJ, Integer countWJ, Integer countGX, Integer countKGJ, Integer countGSJ, Integer countCC, Integer countSJ, String empNo, String empType, String day1, String day2, String day3, String day4, String day5, String day6, String day7, String day8, String day9, String day10, String day11, String day12, String day13, String day14, String day15, String day16, String day17, String day18, String day19, String day20, String day21, String day22, String day23, String day24, String day25, String day26, String day27, String day28, String day29, String day30, String day31) {
        this.userId = userId;
        this.userName = userName;
        this.month = month;
        this.deptName = deptName;
        this.remark = remark;
        this.countLY = countLY;
        this.countYB = countYB;
        this.countCJ = countCJ;
        this.countHJ = countHJ;
        this.countCQ = countCQ;
        this.countBJ = countBJ;
        this.countSANGJ = countSANGJ;
        this.countT = countT;
        this.countBX = countBX;
        this.countJB = countJB;
        this.countTQJ = countTQJ;
        this.countDXXJ = countDXXJ;
        this.countWJ = countWJ;
        this.countGX = countGX;
        this.countKGJ = countKGJ;
        this.countGSJ = countGSJ;
        this.countCC = countCC;
        this.countSJ = countSJ;
        this.empNo = empNo;
        this.empType = empType;
        this.day1 = day1;
        this.day2 = day2;
        this.day3 = day3;
        this.day4 = day4;
        this.day5 = day5;
        this.day6 = day6;
        this.day7 = day7;
        this.day8 = day8;
        this.day9 = day9;
        this.day10 = day10;
        this.day11 = day11;
        this.day12 = day12;
        this.day13 = day13;
        this.day14 = day14;
        this.day15 = day15;
        this.day16 = day16;
        this.day17 = day17;
        this.day18 = day18;
        this.day19 = day19;
        this.day20 = day20;
        this.day21 = day21;
        this.day22 = day22;
        this.day23 = day23;
        this.day24 = day24;
        this.day25 = day25;
        this.day26 = day26;
        this.day27 = day27;
        this.day28 = day28;
        this.day29 = day29;
        this.day30 = day30;
        this.day31 = day31;
    }

    /**
     * @description 重写equals方法 用于去重
     * @author lyf
     * @date 2019/6/14 9:05
     */
    @Override
    public boolean equals(final Object obj) {
        if (obj == null) {
            return false;
        }
        final DetailVO detailVO = (DetailVO) obj;
        if (this == detailVO) {
            return true;
        } else {
            return (this.deptName.equals(detailVO.getDeptName()) && this.deptName != null );
        }
    }

    /**
     * @description 重写hashcode
     * @author lyf
     * @date 2019/6/14 9:21
     */
    @Override
    public int hashCode() {
        int hashno = 7;
        hashno = 13 * hashno + (deptName == null ? 0 : deptName.hashCode());
        return hashno;
    }

}
